home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Commodore Free 32
/
Commodore_Free_Issue_32_2009_Commodore_Computer_Club.d64
/
iv vanessa
< prev
next >
Wrap
Text File
|
2023-02-26
|
13KB
|
440 lines
*************************************
Interview with Vanessa Ezekowitz
Creator of the Commodore 128
Sound studio
*************************************
Sound studio 128 version 3.8
http://noname.c64.org/csdb/release/?
id=16382
Vanessa Ezekowitz webpage
http://starbase.globalpc.net/{$de}vanessa
/index.html
> COMMODORE FREE
> Please introduce yourself to our
readers
Hi all, I'm Vanessa Ezekowitz. I'm
35, living with my husband Abe in
Joplin, Missouri, and have been
nosing around the C64 scene for about
23 years now.
> CF. Can you tell us a little
history about yourself and your
computing hobby
Early on, I had a propensity for
tearing apart my toys (permanently
breaking about half of them in the
process!), just to see what makes
them work. My first computer was
actually a Timex Sinclair 1000, on
which I learned the basics of BASIC,
so to speak. I typed in programs
from the manuals, hacked around a bit
trying to learn, and otherwise just
kind of tinkered. I even picked up a
16K RAM expander for it at one point.
I used it for one or two years, until
Christmas 1986, when I received a
Commodore 64 as a gift. I took the
C64 up to my bedroom and hooked it up
to a TV. I realized immediately that
she'd made a good decision, and with
her standing there, I tossed the
TS1000 aside onto the bed; mom wasn't
too pleased with what I said about it
*smile*. From then on, I spent the
majority of my time parked in front
of that C64, either typing in
programs from magazines, learning to
code, playing games, or trying to
learn how to interface it to the
outside world. It also served me
well in school for reports and the
like. I learned to code and hack
around with the hardware because I
wanted to do something productive,
something others might find useful
some day.
Today, I spend most of my time
reading, just trying to learn about
general things (especially the
sciences, and in particular,
astronomy and a touch of quantum
physics), and plenty of quality time
with my husband.
> CF. Are you still actively using
Commodore machines?
I do still hack around on my hardware
now and then, but I'm not as active
as I once was.
> CF. Please explain the function of
Sound studio
Originally, it was supposed to
strictly be a RIFF/Wave player, since
that file format was so popular in
the PC world at the time. In fact, I
had originally called it "Waveplay
128". As I worked on it, I added
playback for Commodore RAW files, and
changed the name. I also added a
recording option, based on a gadget I
called "8BSS", itself based on
Russell Prater's "digi0820.sfx"
instructions. The program operates
in a sort of GUI, formed entirely by
a custom character set, and can be
controlled with a joystick, mouse, or
keyboard.
Normally, you just instruct the
program to load a file, after which a
few pieces of information about the
file would be displayed. You could
then play it as-is or re-save it as a
.RAW file. Among the information
displayed is the sample rate, which
the program would let you alter. It
was easy to, for example, record
something and then play it back at
twice the recorded speed, for
chipmunk-like sounds. It only handles
the 8-bit format of RIFF/Wave, but
adding a 16-bit option wouldn't be
very hard.
> CF. Sound studio was released as a
128 only program, was there ever a 64
version planned?
Not exactly... There were already a
few programs for the C64 and 128 that
could do the job, but I felt, at the
time, that they lacked the "polish"
that a good program should have. REU
support was somewhat lacking -
nothing I had found could handle very
large files, as I recall, so I
started on something to fill the gap.
Since my assembly skills were a
little weak, and the C128's BASIC
seemed to be powerful enough to do
the job, I decided to let BASIC
handle the UI and most everything
that wasn't speed critical, and wrote
the re-player routine in machine code.
Incidentally, it's also the C128's
BASIC that set the program's limit to
1MB of storage, since the STASH and
FETCH commands could only accept an
REU "bank" value of less than 16.
> CF. I know the software supports 2
Sid chips is this just for stereo
playback?
Yep, that's it.
> CF. Maybe for the none techy's can
you explain how a Commodore machine
can replay wav files, and also what
wav files are
To explain this, I'll need to include
a little audio theory: Everyone
knows that a sound wave consists of
vibrations in the air. When those
vibrations strike a microphone, the
receiver it is connected to sees a
small voltage that varies rapidly
with the sound wave, usually at
thousands of variations per second.
On virtually every such receiver,
there is another connection that can
send what goes through it to another
device, such as a tape recorder or an
audio sampling device, called a
digitizer. When instructed to do so
by the controller or user, the
digitizer will start making tens of
thousands of measurements per second
of the varying voltage coming off the
receiver's output, and translate each
measurement into a binary value,
called a sample, that is then sent to
the computer.
A RIFF/Wave file is simply a short
header followed by a long train of
those samples.
In the simplest case, a C64 or 128
need only read the 44 byte header and
store it somewhere. Then, just go
into a loop, reading sample bytes and
dividing them by 16. Store each
result in memory, and keep looping
until the file runs out. Then, to
play the sound back, simply start
stuffing the converted samples into
the SID volume register at regular
intervals. Some details aside, that's
all there is to it, and that's just
what Sound Studio does.
There are higher quality digital
audio methods possible, but I only
knew about the volume register back
then.
> Cf. Can you remember some of the
Programming hurdles you had to jump
to enable WAV file playback
The biggest problem I had was
learning machine code well enough to
get the re-player itself done. I had
never before attempted any real
machine code, and had to do so
through the C128's built-in machine
code monitor. Writing short bits of
code with the monitor isn't too hard,
but anything more than a hundred
lines or so starts to get a little
complicated even today. I didn't
understand, at the time, just how to
use an assembler, or even what the
difference was between that and the
monitor I was using.
The second problem was getting the
whole program to run fast enough.
For example, the part of the BASIC
code that draws the buttons and base
UI seemed a little slow. Similarly,
the sample player, while fairly
trivial, wasn't as fast as it could
be at first. I was dead set on
making sure the program could play
back a 44.1 kHz file at full speed,
so I tried to do whatever I could to
trim cycles from the playback loop.
As I recall, I was never able to get
the code to run smoothly enough at
the higher sample rates, because I
couldn't seem to get the idea out of
my head that the REU needed to
transfer bytes in large chunks in
order to be efficient enough (at the
time, I was using an 8K transfer
buffer). I did some experiments
streaming a byte at a time for
maximum smoothness, with the intent
of rewriting the player routine in a
future release. I don't think I ever
put that code in, as my initial
experiments were only able to muster
about 64 kB/sec, and I needed a
little over 88 kB/sec.
> CF. What is the current status of
the software, I believe the software
was sold as shareware is this still
true and if so where would our reader
send the money to?
Originally it was shareware, yes.
Today, the program is public domain.
> CF. The software utilises 80 column
mode is this just for aesthetics of
screen design?
I had three reasons actually. One,
80 column mode looks better than 40
column mode for this sort of thing.
Two, I can use 2 MHz mode without
having to argue with the VIC-II.
Three, there just didn't seem to be a
lot of 80 column software out there,
and I felt I should add to that
library if I could.
> CF. Does the software support other
hardware like the CMD line of
products?
I wrote Sound Studio before I got my
hands on any CMD gear, but it works
fine on the CMD HD. By extension, it
should work on the FD 2000/4000, in
addition to the usual Commodore 15xx
drives. CMD's 17xx REU clones work
for memory just like the originals.
The SID Symphony cartridge should
also work for stereo output, though
I've never tried one myself (I've
always used an internal stereo SID
hack).
The RAMLink is a special case. It can
act as a normal storage device like
it does with many other programs, so
you can load files from it, but the
memory therein can't be used as
expansion RAM, simply because I wrote
the program before I got a RAMLink.
I.e. the program isn't aware of the
existence of a RAMLink, much less
whether one is present.
Now, the Super CPU is a trip -- it's
been a while since I last tested to
see what would happen, but I seem to
recall that it technically does run.
It doesn't crash, that is to say, but
it also doesn't know anything about
the SuperCPU, so it doesn't know how
to adjust its timers to compensate.
Sound files will play about an order
of magnitude faster and higher
pitched than they should -- talk
about a chipmunk effect!
> CF. Also is the product now
effectively dead or do you plan any
updates?
And Have you created any other
software for Commodore machines?
I can answer these two together - the
program isn't dead, but the update I
have planned for it is still a long
way off. I'm working off and on, on
an update for an Amiga MOD player I
wrote back in 1999 or so, and my
intention is to include the ability
to play a number of sample formats,
including RIFF/Wave, as well as
modules. In essence, I want to
combine Sound Studio with the MOD
player, and release the result as a
new program.
The updated program is intended to
look and operate just like XMMS, a
now outdated media player for
Linux/Unix systems. I still like how
it works and what it looks like, so I
plan to stick to that. I haven't
figured out yet how I will handle the
record function, maybe just a menu
item that calls forth a simple "Sound
Recorder" dialog.
I have also written a handful of
other programs, such as an unreleased
animation player based on the Ohio
Art "Etch-a-Sketch Animator" toy. I
have an update in the works for this,
which I will release. There's also a
VDC demo of sorts that puts text on
the bitmap (with full
background/foreground colour control,
flashing text, etc., which I
originally targeted at terminal
programs that do ANSI emulation), an
80 column sector editor modelled on
the one found in the
Maverick/Renegade disk utility
package, and a few small programs for
my own use.
One project I am particularly proud
of was a Connectix QuickCam interface
and demo/driver program (which I had
a lot of help with).
I also experimented with MP3 playback
via an external board, but my initial
efforts did not meet with success. I
still want to revisit this, as others
have made some progress in this
regard.
Most of my efforts today are aimed at
the C64 first, with the C128 firmly
in mind. I try to make my code able
to run on both machines, with as
little platform-specific code as
possible (i.e. just enough code to
account for 2 MHz mode, 80 column
screen, etc).
> CF. Do you still follow the
Commodore scene?
I do to an extent, yes. One of the
most recent things that really caught
my eye was the Vicious SID demo --
the authors of that program
discovered a new way to make sampled
music, and I am very interested in
learning the details of it. As their
re-player routine pretty much blows
my previous efforts out of the water,
I'd like to see if it is possible to
put their method to use in the future.
> CF. Have you any other comments you
would like to add
I've never been too sure how much
demand there is for the sort of stuff
I do on the C64 and 128, and I've
actually seen some comments here and
there in other venues that basically
say that I'm wasting my time
(comments which I generally
disregard, of course). It is nice to
know that there is still interest. I
hope to be able to continue to
contribute well into the future.
> CF. Feel free to add any technical
documents or coding slices you feel
would benefit the readers we cater
for beginners to advanced machine
code programmers
Due to the nature of the stuff I do,
I can't really think of anything that
would be short and still be useful to
your readers, but I can say that that
which I have already released is good
fodder for review and commentary. I
invite your readers, and anyone else
interested, to look through my code,
comment on it, re-write it, use some
of it in another program, etc.
Whatever software license might seem
to be in place for any given program
(i.e. shareware), I hereby rescind,
as all of my software is public
domain now.
=====================================